/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package server.negocio;

import cliente.comunicacion.ICliente;
import java.util.Enumeration;
import server.dominio.Beneficiario;
import server.dominio.Cita;
import server.dominio.Usuario;
import server.senders.Sender_notificacion;

/**
 *
 * @author tpaxle
 */
public class Notificador {
    private Controlador_Servidor C_serv;
    public Notificador(Controlador_Servidor C_Serv){
        this.C_serv= C_Serv;

    }

    public void notificar(int noperacion, Object objeto){
        //Se obtiene la lista de clientes logueados
        Enumeration<Long> claves= C_serv.getTablasesiones().keys();
        while(claves.hasMoreElements()){
            Long clave= claves.nextElement();
            ICliente destino= C_serv.getCliente(clave);
            //Se lanza un hilo por cada notificador
            (new Sender_notificacion(clave, destino, objeto, noperacion, C_serv)).start();
        }
        
    }
    public void notificar(int noperacion, Object objeto, long idSesion){
        ICliente destino= null;
        destino= C_serv.getCliente(idSesion);
        new Sender_notificacion(idSesion, destino, objeto, noperacion, C_serv).start();

    }
    public void notificarhorarionuevo(String nif){
        Enumeration<Long> claves= C_serv.getTablasesiones().keys();
        while(claves.hasMoreElements()){
            Long clave= claves.nextElement();
            ICliente destino= C_serv.getCliente(clave);
            //Se lanza un hilo por cada notificador
            (new Sender_notificacion(clave, destino, nif, 7, C_serv)).start();
        }
    }

    public void notificarhorarioborrado(String nif) {
        Enumeration<Long> claves= C_serv.getTablasesiones().keys();
        while(claves.hasMoreElements()){
            Long clave= claves.nextElement();
            ICliente destino= C_serv.getCliente(clave);
            //Se lanza un hilo por cada notificador
            (new Sender_notificacion(clave, destino, nif, 8, C_serv)).start();
        }
    }
    public void notificarnuevacita(Cita cita){
         Enumeration<Long> claves= C_serv.getTablasesiones().keys();
        while(claves.hasMoreElements()){
            Long clave= claves.nextElement();
            ICliente destino= C_serv.getCliente(clave);
            //Se lanza un hilo por cada notificador
            (new Sender_notificacion(clave, destino, cita, 9, C_serv)).start();
        }
    }

    public void notificaranulacioncita(Cita cita) {
        Enumeration<Long> claves= C_serv.getTablasesiones().keys();
        while(claves.hasMoreElements()){
            Long clave= claves.nextElement();
            ICliente destino= C_serv.getCliente(clave);
            //Se lanza un hilo por cada notificador
            (new Sender_notificacion(clave, destino, cita, 10, C_serv)).start();
        }
    }
    

}
